package com.ruoyi.web.controller.mes;

import com.kt.mes.domain.ProlSite;
import com.kt.mes.opc.OpcClientUtil;
import com.kt.mes.service.IProlSiteService;
import com.kt.mes.util.OpcUtil;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import org.eclipse.milo.opcua.sdk.client.OpcUaClient;
import org.eclipse.milo.opcua.stack.core.types.builtin.NodeId;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("/mes/site_mon")
public class SiteMonController extends BaseController {
    @Autowired
    private IProlSiteService prolSiteService;

    //监控列表
    @GetMapping("/list")
    public TableDataInfo list(ProlSite prolSite)
    {
     //   NodeId mes_mode= NodeId.parse("ns=3;s=\"OPC\".\"To_MES\".\"mes_mode\"");// //MES模式节点
    //    NodeId mes_mode2=NodeId.parse("ns=4;i=16"); //MES模式节点
      //  NodeId mes_modegw2=NodeId.parse("ns=4;i=4"); //MES模式节点
        startPage();
        List<ProlSite> list = prolSiteService.selectProlSiteList(prolSite);
//        for(ProlSite ps:list){
//            if(OpcUtil.mapOpcClient.containsKey(ps.getSiteId()) && OpcUtil.mapOpcClient.get(ps.getSiteId())!=null ){
//
//                OpcUaClient clent= (OpcUaClient) OpcUtil.mapOpcClient.get(ps.getSiteId());
//
//                //站点不同 节点不一样
//                if (clent.getSession().isDone() ) {
//                    ps.setConState("1");
//                    if ( ps.getSiteId().equals("gw01"))
//                    {
//                        ps.setMesState(OpcClientUtil.read(mes_mode, clent));
//                    }
////                    else if (ps.getSiteId().equals("gw02")){
////                        ps.setMesState(OpcClientUtil.read(mes_modegw2, clent));
////                    }
//                    else {
//                        ps.setMesState(OpcClientUtil.read(mes_mode2, clent));
//                    }
//
//                }
//
//
//            }
//
//
//        }


        return getDataTable(list);

    }
    //获取状态
    @GetMapping("/state/{gw}")
    public AjaxResult getState(@PathVariable("gw") String gw){
        Map<String,Object> res=new HashMap<>();
        NodeId mes_mode=NodeId.parse("ns=4;i=16"); //MES模式节点
        res.put(gw,"0");
        if(OpcUtil.mapOpcClient.containsKey(gw) && OpcUtil.mapOpcClient.get(gw)!=null){
            OpcUaClient clent= (OpcUaClient) OpcUtil.mapOpcClient.get(gw);
            res.put(gw,"1");
            res.put(gw+"_mes_mode",OpcClientUtil.read(mes_mode, clent));
        }
        return AjaxResult.success(res);
    }



}
